home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / octa209s.zip / octave-2.09 / liboctave / dbleGEPBAL.h < prev    next >
C/C++ Source or Header  |  1996-03-03  |  2KB  |  95 lines

  1. /*
  2.  
  3. Copyright (C) 1996 John W. Eaton
  4.  
  5. This file is part of Octave.
  6.  
  7. Octave is free software; you can redistribute it and/or modify it
  8. under the terms of the GNU General Public License as published by the
  9. Free Software Foundation; either version 2, or (at your option) any
  10. later version.
  11.  
  12. Octave is distributed in the hope that it will be useful, but WITHOUT
  13. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  14. FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  15. for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with Octave; see the file COPYING.  If not, write to the Free
  19. Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. */
  22.  
  23. #if !defined (octave_GEPBALANCE_h)
  24. #define octave_GEPBALANCE_h 1
  25.  
  26. #if defined (__GNUG__)
  27. #pragma interface
  28. #endif
  29.  
  30. class ostream;
  31.  
  32. #include <string>
  33.  
  34. #include "dMatrix.h"
  35.  
  36. class
  37. GEPBALANCE
  38. {
  39. public:
  40.  
  41.   GEPBALANCE (void)
  42.     : balanced_a_mat (), balanced_b_mat (), left_balancing_mat (),
  43.       right_balancing_mat () { }
  44.  
  45.   GEPBALANCE (const Matrix& a, const Matrix& b, const string& balance_job)
  46.     {
  47.       init (a, b, balance_job); 
  48.     }
  49.  
  50.   GEPBALANCE (const GEPBALANCE& a)
  51.     : balanced_a_mat (a.balanced_a_mat),
  52.       balanced_b_mat (a.balanced_b_mat),
  53.       left_balancing_mat (a.left_balancing_mat),
  54.       right_balancing_mat (a.right_balancing_mat) { }
  55.  
  56.   GEPBALANCE& operator = (const GEPBALANCE& a)
  57.     {
  58.       if (this != &a)
  59.     {
  60.       balanced_a_mat = a.balanced_a_mat;
  61.       balanced_b_mat = a.balanced_b_mat;
  62.       left_balancing_mat = a.left_balancing_mat;
  63.       right_balancing_mat = a.right_balancing_mat;
  64.     }
  65.       return *this;
  66.     }
  67.  
  68.   ~GEPBALANCE (void) { }
  69.  
  70.   Matrix balanced_a_matrix (void) const { return balanced_a_mat; }
  71.   Matrix balanced_b_matrix (void) const { return balanced_b_mat; }
  72.  
  73.   Matrix left_balancing_matrix (void) const { return left_balancing_mat; }
  74.   Matrix right_balancing_matrix (void) const { return right_balancing_mat; }
  75.  
  76.   friend ostream& operator << (ostream& os, const GEPBALANCE& a);
  77.  
  78. private:
  79.  
  80.   Matrix balanced_a_mat;
  81.   Matrix balanced_b_mat;
  82.   Matrix left_balancing_mat;
  83.   Matrix right_balancing_mat;
  84.  
  85.   int init (const Matrix& a, const Matrix& b, const string& balance_job);
  86. };
  87.  
  88. #endif
  89.  
  90. /*
  91. ;;; Local Variables: ***
  92. ;;; mode: C++ ***
  93. ;;; End: ***
  94. */
  95.